package ${sysTableVo.packageName}.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jichangxiu.framework.service.BaseService;
import ${sysTableVo.packageName}.entity.dto.add.Add${sysTableVo.bigClassName};
import ${sysTableVo.packageName}.entity.dto.edit.Edit${sysTableVo.bigClassName};
import ${sysTableVo.packageName}.entity.dto.query.Query${sysTableVo.bigClassName};
import ${sysTableVo.packageName}.entity.po.${sysTableVo.bigClassName};
import ${sysTableVo.packageName}.entity.vo.${sysTableVo.bigClassName}Vo;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * ${sysTableVo.bigClassName}Service:
 *
 * @author ${sysTableVo.functionAuthor}
 * @create ${datetime}
 */
public interface ${sysTableVo.bigClassName}Service extends BaseService<${sysTableVo.bigClassName}, ${sysTableVo.bigClassName}Vo> {

    /**
     * 新增${sysTableVo.functionName}
     *
     * @param add${sysTableVo.bigClassName} 新增${sysTableVo.functionName}视图对象
     * @return 是否成功
     */
    public Boolean add(Add${sysTableVo.bigClassName} add${sysTableVo.bigClassName});

    /**
     * 单（多）选删除${sysTableVo.functionName}
     *
     * @param idList ${sysTableVo.functionName}主键列表
     * @return 是否成功
     */
    public Boolean del(List<String> idList);

    /**
     * 修改${sysTableVo.functionName}
     *
     * @param edit${sysTableVo.bigClassName} 修改${sysTableVo.functionName}视图对象
     * @return 是否成功
     */
    public Boolean edit(Edit${sysTableVo.bigClassName} edit${sysTableVo.bigClassName});

    /**
     * 根据主键查询${sysTableVo.functionName}
     *
     * @param id ${sysTableVo.functionName}主键
     * @param isExtend 是否扩展
     * @return ${sysTableVo.functionName}详情
     */
    public ${sysTableVo.bigClassName}Vo info(@NotBlank(message = "主键不能为空") String id, Boolean isExtend);

    /**
     * （可分页）查询${sysTableVo.functionName}列表
     *
     * @param query${sysTableVo.bigClassName} 查询视图对象
     * @return （分页）${sysTableVo.functionName}列表
     */
    public Page<${sysTableVo.bigClassName}Vo> lists(Query${sysTableVo.bigClassName} query${sysTableVo.bigClassName});

}